package top.hkyzf.study.leetcode.array;

import org.junit.Test;

/**
 * @author zhufeng
 * @version 1.0
 * @date 2022-1-20 16:56
 */
public class 石子游戏IX_2029 {
    public boolean stoneGameIX(int[] stones) {
        int count0 = 0;
        int count1 = 0;
        int count2 = 0;
        for (int stone : stones) {
            int temp = stone % 3;
            if (temp == 0) {
                count0++;
            } else if (temp == 1) {
                count1++;
            } else {
                count2++;
            }
        }
        // 1121212...
        // 2212121...
        // 0 的个数为偶数，等价于没有
        // 0 的个数为奇数，等价于有一个 0
        // 假设没有 0 获胜情况分析：1的个数和2个数不为0，Alice 获胜
        if(count0 % 2 == 0) {
            return count1 > 0 && count2 > 0;
        }
        // 0的个数为奇数的情况，1的个数和2的个数相差大于2的情况下，Alice 获胜
        return Math.abs(count1 - count2) > 2;
    }

    @Test
    public void testStoneGameIX () {
        int [] stones = {2, 1};
        System.out.println(stoneGameIX(stones));
    }
}
